package com.uva.dbcs.gestionDeFacturas.persistencia.impl;

import java.util.Date;
import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import com.uva.dbcs.gestionDeFacturas.dominio.Factura;
import com.uva.dbcs.gestionDeFacturas.persistencia.FacturaDAO;
import com.uva.dbcs.utilidades.persistencia.GenericAbstractDAO;

/**
 * Session Bean implementation class FacturaDAOImpl
 */
@Stateless
public class FacturaDAOImpl extends GenericAbstractDAO<Factura, Integer>
		implements FacturaDAO {

	@PersistenceContext
	private EntityManager em;

	/**
	 * Default constructor.
	 */
	public FacturaDAOImpl() {
		super(Factura.class);
	}

	@Override
	public EntityManager getEntityManager() {
		return em;
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Factura> getFacturasPendientes(Date date) {

		return getEntityManager()
				.createQuery(
				"Select f from Factura f where f.fechaCobro<:fechaLimite ")
				.setParameter("fechaLimite", date).getResultList();

	}

}
